#include "ThreadPool.hpp"
#include "Thread.hpp"
#include "Text.hpp"
#include <unistd.h>
#include <memory>

int main()
{
    std::unique_ptr<ThreadPool<Task>> tp(new ThreadPool<Task>());
    tp->run();

    int x, y;
    char op;
    while (true)
    {
        std::cout << "请输入数据1# ";
        std::cin >> x;
        std::cout << "请输入数据2# ";
        std::cin >> y;
        std::cout << "请输入进行的运算# ";
        std::cin >> op;
        Task t(x, y, op, mymath);
        std::cout << "你刚刚录用了一个任务: " << t.toTaskString() << ",确认提交吗?[y/n]" << std::endl;
        char confirm;
        std::cin >> confirm;
        if (confirm == 'y')
            tp->push(t);
    }
    return 0;
}

// void *run(void *args)
// {
//     std::string massage = (const char *)args;
//     while (true)
//     {
//         std::cout << massage << std::endl;
//         sleep(1);
//     }
//     return nullptr;
// }
// int main()
// {
//     ThreadNs::Thread t1(run, (void *)"thread 1 run");
//     ThreadNs::Thread t2(run, (void *)"thread 2 run");

//     t1.start();
//     t2.start();

//     t1.join();
//     t2.join();
//     return 0;
// }